
\section{缓存有几种}

\section{linux 内核态用户态内存地址空间分配}
\href{https://my.oschina.net/fileoptions/blog/968320}{linux内核之内存管理图解}
\href{https://lishiwen4.github.io/linux/linux-process-memory-location}{linux进程内存布局}

\section{什么时候用 volatile 关键字}

参考资料
\begin{itemize}
  \item \href{https://segmentfault.com/a/1190000017797051}{c volatile用法}
  \item \href{https://isocpp.org/blog/2018/06/is-volatile-useful-with-threads-isvolatileusefulwiththreads.com}{Is volatile useful with threads}
  \item \href{https://www.kernel.org/doc/html/latest/process/volatile-considered-harmful.html}{linux 内核文档 volatile harmful}
  \item \href{https://blog.csdn.net/zjzto/article/details/52328241?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.baidujs&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.baidujs}{C 关键字之别搞砸了 volatile}
  \item \href{https://www.cnblogs.com/zhaoli/p/4250468.html}{volatile 陷阱}
  \item \href{https://www.stmcu.org.cn/module/forum/thread-622233-1-1.html}{volatile 陷阱更正}
  \item \href{https://www.cnblogs.com/jokerjason/p/10711022.html}{cpu cache机制}
  \item \href{https://coolshell.cn/articles/10249.html}{7个示例科普CPU CACHE}
  \item \href{https://www.scss.tcd.ie/~jones/vivio/caches/MESI.htm}{MESI 可视化交互程序}
  \end{itemize}

网上资料太多太杂，各个解释可能还有冲突的地方，尽可能用权威的参考来指导。比如 linux 内核文档，标准C++网站。
其中涉及到知识主要包括语言特性（C,C++,JAVA,C\#), 缓存一致性协议(MESI), cpu cache写机制， X86体系区别，编译器未定义


\subsection{volatile使用场景}
\subsubsection{硬件端口映射内存}
\subsubsection{信号中断处理}
\subsubsection{longjmp,setjmp处理}
\subsubsection{jiffies时间}

\subsection{volatile容易误用的地方}
\subsubsection{多进程共享volatile变量}
\subsubsection{volaile指针指向非volatile变量}

